home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d4 / 42.arc / 42.BAS (.txt) next >
Encoding:
GW-BASIC  |  1986-09-18  |  22.5 KB  |  699 lines

  1. 10  DEFINT A-Z
  2. 20  SCREEN 0:WIDTH 80:KEY OFF:CLS
  3. 30  PRINT "      |------------------------------------------------------------------|"
  4. 40  PRINT "      |                                                                  |"
  5. 50  PRINT "      |                      S H A R E W A R E                           |"
  6. 60  PRINT "      |                                                                  |"
  7. 70  PRINT "      |                    User Supported Software                       |"
  8. 80  PRINT "      |                                                                  |"
  9. 90  PRINT "      |------------------------------------------------------------------|"
  10. 100  PRINT "      |                                                                  |"
  11. 110  PRINT "      |     If you play this game and find it enjoyable (and want to     |"
  12. 120  PRINT "      |  encourage me to write others), you contribution ($10 suggested, |"
  13. 130  PRINT "      |  or whatever you feel it is worth) would be greatly appreciated. |"
  14. 140  PRINT "      |                                                                  |"
  15. 150  PRINT "      |                        C & K Software                            |"
  16. 160  PRINT "      |                       1624 War Bird Dr.                          |"
  17. 170  PRINT "      |                       Norman, OK 73071                           |"
  18. 180  PRINT "      |                                                                  |"
  19. 190  PRINT "      |     You are encouraged to copy and share this game with other    |"
  20. 200  PRINT "      |  users, on the conditions that the program is not distributed    |"
  21. 210  PRINT "      |  in modified form, that no fee or consideration is charged, and  |"
  22. 220  PRINT "      |  that this notice is not removed.                                |"
  23. 230  PRINT "      |                                                                  |"
  24. 240  PRINT "      |------------------------------------------------------------------|"
  25. 250  PRINT:PRINT "                                            Strike any key to continue ...";
  26. 260  IF INKEY$="" THEN 260
  27. 270  SCREEN 1:RANDOMIZE TIMER
  28. 280  DIM A(6,1),B(6,1),C(6,1),D(6,1),F(27,1),G(27)
  29. 290  DIM LEFTOUT(7,7),INPLAY(3,1),WHOHAS(3,9)
  30. 300  DIM TEMP(6,1),DOUB(6),COUNT(6),GONE(9)
  31. 310  CLS:TURN=1:ASCORE=0:BSCORE=0
  32. 320  RESTORE 370
  33. 330  FOR X1=0 TO 27
  34. 340  READ X,Y
  35. 350  F(X1,0)=X:F(X1,1)=Y
  36. 360  NEXT X1
  37. 370  DATA 0,0,0,1,0,2,0,3,0,4,0,5,0,6
  38. 380  DATA 1,1,1,2,1,3,1,4,1,5,1,6
  39. 390  DATA 2,2,2,3,2,4,2,5,2,6
  40. 400  DATA 3,3,3,4,3,5,3,6
  41. 410  DATA 4,4,4,5,4,6
  42. 420  DATA 5,5,5,6,6,6
  43. 430  REM *******PICK DOMINOES***********
  44. 440  FOR X=0 TO 27:G(X)=-1:NEXT X
  45. 450  FOR Y=0 TO 6
  46. 460  GOSUB 550
  47. 470  A(Y,0)=F(Z,0):A(Y,1)=F(Z,1)
  48. 480  GOSUB 550
  49. 490  B(Y,0)=F(Z,0):B(Y,1)=F(Z,1)
  50. 500  GOSUB 550
  51. 510  C(Y,0)=F(Z,0):C(Y,1)=F(Z,1)
  52. 520  GOSUB 550
  53. 530  D(Y,0)=F(Z,0):D(Y,1)=F(Z,1)
  54. 540  NEXT Y:GOTO 580
  55. 550  Z=INT(RND*(27+1))
  56. 560  IF G(Z)=0 THEN 550
  57. 570  G(Z)=0:RETURN
  58. 580  REM *******************************
  59. 590  REM **Initial domino set-up ******
  60. 600  RESTORE 740
  61. 610  LINE (0,12)-(319,199),0,BF
  62. 620   LOCATE 1,2:PRINT "Us ";ASCORE;:LOCATE 1,31:PRINT "Them ";BSCORE;
  63. 630  LINE (73,50)-(233,130),1,B
  64. 640  FOR X1=0 TO 6
  65. 650  READ X,Y
  66. 660  LINE (X,Y)-STEP(40,-20),2,B
  67. 670  LINE (X+20,Y)-STEP (0,-20),2
  68. 680  L1= A(X1,0):GOSUB 760
  69. 690  L1=A(X1,1):X=X+20:GOSUB 760
  70. 700  NEXT X1
  71. 710  LOCATE 22,1
  72. 720  PRINT"  1     2     3    4     5    6     7";
  73. 730  GOTO 2170
  74. 740  DATA 0,199,45,199,90,199,135,199,180,199,225,199,270,199
  75. 750  REM **** Add Dots to Domino ******
  76. 760  ON L1 GOTO 780,790,810,820,850,860
  77. 770  RETURN
  78. 780  CIRCLE(X+10,Y-10),1,3:PAINT(X+10,Y-10),3:RETURN
  79. 790  CIRCLE(X+5,Y-15),1,3:PAINT(X+5,Y-15),3
  80. 800  CIRCLE(X+15,Y-5),1,3:PAINT(X+15,Y-5),3:RETURN
  81. 810  GOSUB 790:GOSUB 780:RETURN
  82. 820  GOSUB 790
  83. 830  CIRCLE(X+5,Y-5),1,3:PAINT(X+5,Y-5),3
  84. 840  CIRCLE(X+15,Y-15),1,3:PAINT(X+15,Y-15),3:RETURN
  85. 850  GOSUB 820:GOSUB 780:RETURN
  86. 860  GOSUB 820:CIRCLE(X+10,Y-5),1,3:PAINT(X+10,Y-5),3
  87. 870  CIRCLE(X+10,Y-15),1,3:PAINT(X+10,Y-15),3:RETURN
  88. 880  REM ******* Bid Section **********
  89. 890  DBLES=0:SCORE=0
  90. 900  FOR X=0 TO 6
  91. 910  DOUB(X)=0:COUNT(X)=0
  92. 920  NEXT X
  93. 930  FOR X=0 TO 6
  94. 940  IF TEMP(X,0)=-1 THEN 990
  95. 950  IF TEMP(X,0)<>TEMP(X,1) THEN 970
  96. 960  DBLES=DBLES+1:DOUB(TEMP(X,0))=1:GOTO 980
  97. 970  COUNT(TEMP(X,0))=COUNT(TEMP(X,0))+1
  98. 980  COUNT(TEMP(X,1))=COUNT(TEMP(X,1))+1
  99. 990  NEXT X
  100. 1000  SCORE=SCORE+DBLES*10
  101. 1010  FOR Y=0 TO 6
  102. 1020  IF DOUB(Y)=0 THEN 1070
  103. 1030  FOR X=0 TO 6
  104. 1040  IF Y=6 AND TEMP(X,0)=5 AND TEMP(X,1)=6 THEN SCORE=SCORE+10
  105. 1050  IF Y<6 AND TEMP(X,1)=6 AND TEMP(X,0)=Y THEN SCORE=SCORE+10
  106. 1060  NEXT X
  107. 1070  NEXT Y
  108. 1080  HIGH=0:TRUMP=-1
  109. 1090  FOR X=0 TO 6
  110. 1100  N=0
  111. 1110  IF COUNT(X)<3 THEN 1240
  112. 1120  FOR Y=0 TO 6
  113. 1130  IF X<6 AND DOUB(X)=0 AND TEMP(Y,0)=X AND TEMP(Y,1)=6 THEN N=N+5
  114. 1140  IF X=6 AND DOUB(X)=0 AND TEMP(Y,1)=6 AND TEMP(Y,0)=5 THEN N=N+5
  115. 1150  IF TEMP(Y,0)>4 OR TEMP(Y,1)>4 THEN 1200
  116. 1160  IF TEMP(Y,0)=2 AND TEMP(Y,1)=3 THEN 1200
  117. 1170  IF TEMP(Y,0)=1 AND TEMP(Y,1)=4 THEN 1200
  118. 1180  IF TEMP(Y,0)=TEMP(Y,1)THEN 1200
  119. 1190  N=N+3
  120. 1200  NEXT Y
  121. 1210  N=N+((COUNT(X)-3)*10)
  122. 1220  IF SCORE+N<HIGH THEN 1240
  123. 1230  HIGH=SCORE+N:TRUMP=X
  124. 1240  NEXT X
  125. 1250  TESTVAL=HIGH
  126. 1260  REM *Normal hand bid as follows*
  127. 1270  BID=0
  128. 1280  IF LAST=0 OR HIBID>29 THEN 1310
  129. 1290  IF TRUMP>=0  AND DBLES>1 THEN BID=30
  130. 1300  IF LAST<>0 AND HIGH>37 THEN BID=30:GOTO 1390
  131. 1310  IF HIGH>37 THEN BID=30
  132. 1320  IF HIGH>45 THEN BID=31
  133. 1330  IF HIGH>50 THEN BID=32
  134. 1340  IF HIGH>55 THEN BID=36
  135. 1350  IF HIGH>67 THEN BID=42
  136. 1360  IF TRUMP=6 AND DOUB(6)=0 AND BID>=30 THEN BID=30
  137. 1370  IF TRUMP<>5 OR DOUB(5)=1 THEN 1390
  138. 1380  IF HIGH>50 THEN BID=30 ELSE BID=0
  139. 1390  IF BID>HIBID THEN RETURN
  140. 1400  REM******* Doubles Hand *********
  141. 1410  SCORE=0:FLAG=0
  142. 1420  IF DBLES<4 THEN 1620
  143. 1430  IF DOUB(6)=1 THEN SCORE=SCORE+50
  144. 1440  IF SCORE=50 AND DOUB(5)=1 THEN SCORE=SCORE+50
  145. 1450  SCORE=SCORE+(DBLES-4)*10
  146. 1460  FOR X=0 TO 6
  147. 1470  IF TEMP(X,0)<>5 OR TEMP(X,1)<>6 THEN 1490
  148. 1480  SCORE=SCORE+10:FLAG=1
  149. 1490  NEXT X
  150. 1500  FOR X=0 TO 6
  151. 1510  IF TEMP(X,0)<>4 OR TEMP(X,1)<>5 THEN 1530
  152. 1520  IF FLAG=1 THEN SCORE=SCORE+10 ELSE SCORE=SCORE+9
  153. 1530  NEXT X
  154. 1540  REM ****** Bid for Doubles *******
  155. 1550  BID=0
  156. 1560  IF SCORE=109 THEN BID=30
  157. 1570  IF SCORE=110 THEN BID=31
  158. 1580  IF SCORE>119 THEN BID=36
  159. 1590  IF SCORE>129 THEN BID=42
  160. 1600  IF BID<=HIBID THEN 1620
  161. 1610  TRUMP=7:RETURN
  162. 1620  REM ****** Check for Trash *******
  163. 1630  LOSERS=0
  164. 1640  FOR X=0 TO 6
  165. 1650  IF TEMP(X,0)=1 AND TEMP(X,1)=1 THEN 1670
  166. 1660  IF TEMP(X,0)=0 OR TEMP(X,0)=1 THEN LOSERS=LOSERS+1
  167. 1670  NEXT X
  168. 1680  REM ******* Bid for Trash *******
  169. 1690  IF LAST=0 OR HIBID>29 THEN 1710
  170. 1700  BID=42:TRUMP=8:RETURN
  171. 1710  IF LOSERS>5 THEN 1700
  172. 1720  RETURN
  173. 1730  REM ******** Bidding routine for each player **********
  174. 1740  LOCATE 21,18:PRINT"              ";
  175. 1750  LOCATE 21,18:INPUT"Bid";A$
  176. 1760  IF LEFT$(A$,1)="p" OR LEFT$(A$,1)="P" THEN GIZMO=1 ELSE GIZMO=0
  177. 1770  IF GIZMO=0 THEN 1790
  178. 1780  IF GIZMO=1 AND LAST=0 OR GIZMO=1 AND HIBID>29 THEN RETURN ELSE 1740
  179. 1790  IF VAL(A$)=0 THEN 1740
  180. 1800  IF VAL(A$)<=HIBID THEN 1740
  181. 1810  IF VAL(A$)=84 AND HIBID=42 OR VAL(A$)=168 AND HIBID=84 THEN 1830
  182. 1820  IF VAL(A$)>42 THEN 1740
  183. 1830  HIBID=VAL(A$):RETURN
  184. 1840  FOR X=0 TO 6
  185. 1850  TEMP(X,0)=B(X,0):TEMP(X,1)=B(X,1)
  186. 1860  NEXT X:GOSUB 880
  187. 1870  BTRUMP$=STR$(TRUMP):BSC=TESTVAL
  188. 1880  IF TRUMP=7 THEN BTRUMP$="D"
  189. 1890  IF TRUMP=8 THEN BTRUMP$="T"
  190. 1900  LOCATE 11,1:PRINT "Bid"
  191. 1910  IF BID>HIBID THEN 1930
  192. 1920  B$="pass":LOCATE 12,1:PRINT B$:RETURN
  193. 1930  IF TRUMP=8 THEN HIBID=42 ELSE HIBID=BID
  194. 1940  B$=STR$(HIBID):LOCATE 12,1:PRINT B$:RETURN
  195. 1950  FOR X=0 TO 6
  196. 1960  TEMP(X,0)=C(X,0):TEMP(X,1)=C(X,1)
  197. 1970  NEXT X:GOSUB 880
  198. 1980  CTRUMP$=STR$(TRUMP):CSC=TESTVAL
  199. 1990  IF TRUMP=7 THEN CTRUMP$="D"
  200. 2000  IF TRUMP=8 THEN CTRUMP$="T"
  201. 2010  LOCATE 1,18:PRINT "Bid"
  202. 2020  IF BID>HIBID THEN 2040
  203. 2030  C$="pass":LOCATE 2,18:PRINT C$:RETURN
  204. 2040  IF TRUMP=8 THEN HIBID=42 ELSE HIBID=BID
  205. 2050  C$=STR$(HIBID):LOCATE 2,18:PRINT C$:RETURN
  206. 2060  FOR X=0 TO 6
  207. 2070  TEMP(X,0)=D(X,0):TEMP(X,1)=D(X,1)
  208. 2080  NEXT X:GOSUB 880
  209. 2090  DTRUMP$=STR$(TRUMP):DSC=TESTVAL
  210. 2100  IF TRUMP=7 THEN DTRUMP$="D"
  211. 2110  IF TRUMP=8 THEN DTRUMP$="T"
  212. 2120  LOCATE 11,34:PRINT "Bid"
  213. 2130  IF BID>HIBID THEN 2150
  214. 2140  D$="pass":LOCATE 12,34:PRINT D$:RETURN
  215. 2150  IF TRUMP=8 THEN HIBID=42 ELSE HIBID=BID
  216. 2160  D$=STR$(HIBID):LOCATE 12,34:PRINT D$:RETURN
  217. 2170  LAST=0:HIBID=29
  218. 2180  FOR LOOP=1 TO 4
  219. 2190  IF LOOP=4 THEN LAST=1
  220. 2200  ON TURN GOSUB 1740,1840,1950,2060
  221. 2210  IF TURN=4 THEN TURN=1 ELSE TURN=TURN+1
  222. 2220  NEXT LOOP
  223. 2230  IF TURN=4 THEN TURN=1 ELSE TURN=TURN+1
  224. 2240  REM ****** Go to Play Now *******
  225. 2250  FOR XXX=1 TO 500:NEXT XXX
  226. 2260  IF VAL(A$)=HIBID THEN BIDDER=1:ETRUMP$=ATRUMP$:GOTO 2300
  227. 2270  IF VAL(B$)=HIBID THEN BIDDER=2:ETRUMP$=BTRUMP$:GOTO 2300
  228. 2280  IF VAL(C$)=HIBID THEN BIDDER=3:ETRUMP$=CTRUMP$:GOTO 2300
  229. 2290  IF VAL(D$)=HIBID THEN BIDDER=4:ETRUMP$=DTRUMP$:GOTO 2300
  230. 2300  IF ETRUMP$="D" THEN TRUMP=7:GOTO 2320
  231. 2310  IF ETRUMP$="T" THEN TRUMP=8 ELSE TRUMP=VAL(ETRUMP$)
  232. 2320  WHOSE=BIDDER:GOTO 4120
  233. 2330  PRINT "Player A       B       C       D"
  234. 2340  PRINT "bid    ";A$;"      ";B$;"    ";C$;"    ";D$
  235. 2350  PRINT "Trump ";ATRUMP$,BTRUMP$;"       ";CTRUMP$;"     ";DTRUMP$
  236. 2360  FOR X=0 TO 6
  237. 2370  PRINT"     ";A(X,0);A(X,1);"  ";B(X,0);B(X,1);"  ";C(X,0);C(X,1);"  ";D(X,0);D(X,1)
  238. 2380  NEXT X
  239. 2390  PRINT"              ";BSC;"    ";CSC;"     ";DSC
  240. 2400  IF INKEY$="" THEN 2400
  241. 2410  CLS:GOTO 430
  242. 2420  REM ************* Actual Playing Section - Passive ******************
  243. 2430  IF TRUMP=8 THEN 3210
  244. 2440  PLAYHI=-1:PLAYLO=-1:SIDE2HI=-1:SIDE2LO=8:CHKFLAG=0
  245. 2450  FOR X9 = 0 TO 6
  246. 2460  IF LEAD<>TRUMP OR TRUMP<>7 THEN 2520
  247. 2470  IF TEMP(X9,0)=-1 THEN 2600
  248. 2480  IF TEMP(X9,0)=TEMP(X9,1) THEN TEST=TEMP(X9,0) ELSE 2600
  249. 2490  IF TEST<SIDE2LO THEN PLAYLO=X9:SIDE2LO=TEST
  250. 2500  IF TEST>SIDE2HI THEN PLAYHI=X9:SIDE2HI=TEST
  251. 2510  GOTO 2600
  252. 2520  IF TEMP(X9,0)<>LEAD AND TEMP(X9,1)<>LEAD THEN 2600
  253. 2530  IF TRUMP=7 AND LEAD<>TRUMP AND TEMP(X9,0)=TEMP(X9,1) THEN 2600
  254. 2540  IF TEMP(X9,0)=LEAD THEN TEST=TEMP(X9,1) ELSE TEST=TEMP(X9,0)
  255. 2550  IF TEST=TRUMP AND LEAD<>TRUMP THEN 2600
  256. 2560  IF TEST=LEAD THEN TEST=7
  257. 2570  IF TEST<SIDE2LO THEN PLAYLO=X9:SIDE2LO=TEST
  258. 2580  IF TEST>SIDE2HI THEN PLAYHI=X9:SIDE2HI=TEST
  259. 2590  IF TEST=LEAD THEN SIDE2HI=7:PLAYHI=X9
  260. 2600  NEXT X9
  261. 2610  IF PLAYHI=-1 THEN 2690
  262. 2620  IF TRUMPIN>-1 THEN FPLAY=PLAYLO:RETURN
  263. 2630  IF ABS(WHOSE-LOOKFOR)<>2 THEN 2660
  264. 2640  IF LEAD<>TRUMP THEN 2660
  265. 2650  FPLAY=PLAYHI:RETURN
  266. 2660  IF SIDE2HI>OTHER THEN FPLAY=PLAYHI ELSE FPLAY=PLAYLO
  267. 2670  RETURN
  268. 2680  REM ***** See if we can trump in  **
  269. 2690  PLAYHI=-1:PLAYLO=-1:SIDE2HI=-1:SIDE2LO=8
  270. 2700  IF LEAD=7 THEN 2720
  271. 2710  WHOHAS(LOOKFOR-1,LEAD)=0
  272. 2720  FOR X9=0 TO 6
  273. 2730  IF TRUMP<>7 THEN 2770
  274. 2740  IF TEMP(X9,0)=-1 THEN 2890
  275. 2750  IF TEMP(X9,0)=TEMP(X9,1) THEN TEST=TEMP(X9,0) ELSE 2890
  276. 2760  GOTO 2860
  277. 2770  IF TEMP(X9,0)<>TRUMP AND TEMP(X9,1)<>TRUMP THEN 2890
  278. 2780  IF TEMP(X9,0)=TRUMP THEN TEST=TEMP(X9,1) ELSE TEST=TEMP(X9,0)
  279. 2790  IF TEST=TRUMP THEN TEST=7
  280. 2800  IF ABS(WHOSE-LOOKFOR)<>2 THEN 2860
  281. 2810  IF Y9=3 OR LEAD=OTHER THEN 2890
  282. 2820  FOR Z80=OTHER+1 TO 6
  283. 2830  IF LEFTOUT(LEAD,Z80)=1 THEN 2860
  284. 2840  NEXT Z80
  285. 2850  GOTO 2890
  286. 2860  IF TEST<TRUMPIN THEN 2890
  287. 2870  IF TEST>SIDE2HI THEN SIDE2HI=TEST:PLAYHI=X9
  288. 2880  IF TEST<SIDE2LO THEN SIDE2LO=TEST:PLAYLO=X9
  289. 2890  NEXT X9
  290. 2900  IF PLAYLO=-1 THEN 2940
  291. 2910  IF Y9=3 AND PLAYLO<>-1 THEN FPLAY=PLAYLO:RETURN
  292. 2920  FPLAY=PLAYHI:RETURN
  293. 2930  REM ****** See what else we have to play *********
  294. 2940  SIDE2HI=-1:PLAYHI=-1:PLAYLO=-1:SIDE2LO=26:CHKFLAG=0
  295. 2950  FOR X9 = 0 TO 6
  296. 2960  IF TEMP(X9,0)=-1 THEN 3050
  297. 2970  IF CHKFLAG=1 THEN 2990
  298. 2980  IF TEMP(X9,0)=TRUMP OR TEMP(X9,1)=TRUMP THEN 3050
  299. 2990  TEST=TEMP(X9,0)+TEMP(X9,1)
  300. 3000  IF TEST=5 THEN TEST=20:GOTO 3030
  301. 3010  IF TEST=10 THEN TEST=25:GOTO 3030
  302. 3020  IF TEMP(X9,0)=TEMP(X9,1) THEN TEST=TEST+5
  303. 3030  IF TEST<SIDE2LO THEN PLAYLO=X9:SIDE2LO=TEST
  304. 3040  IF TEST>SIDE2HI THEN PLAYHI=X9:SIDE2HI=TEST
  305. 3050  NEXT X9
  306. 3060  IF PLAYLO=-1 THEN CHKFLAG=1:GOTO 2950
  307. 3070  IF ABS(WHOSE-LOOKFOR)=2 THEN 3090
  308. 3080  FPLAY=PLAYLO:RETURN
  309. 3090  IF SIDE2HI<20 THEN 3080
  310. 3100  DOIT=0
  311. 3110  FOR X8=OTHER TO 6
  312. 3120  IF LEAD<>7 THEN 3150
  313. 3130  IF LEFTOUT(OTHER,OTHER)=1 THEN DOIT=1
  314. 3140  GOTO 3180
  315. 3150  IF LEAD=OTHER THEN 3180
  316. 3160  IF LEFTOUT(LEAD,X8)=1 THEN DOIT=1
  317. 3170  IF LEAD=OTHER THEN FPLAY=PLAYHI:RETURN
  318. 3180  NEXT X8
  319. 3190  IF DOIT=0 THEN FPLAY=PLAYHI:RETURN
  320. 3200  FPLAY=PLAYLO:RETURN
  321. 3210  REM **************** TRASH SECTION *******************
  322. 3220  PLAYHI=-1:PLAYLO=-1:SIDE2HI=-1:SIDE2LO=8
  323. 3230  FOR X9=0 TO 6
  324. 3240  IF TEMP(X9,0)<>LEAD AND TEMP(X9,1)<>LEAD THEN 3290
  325. 3250  IF TEMP(X9,0)=LEAD THEN TEST=TEMP(X9,1) ELSE TEST=TEMP(X9,0)
  326. 3260  IF TEST=LEAD THEN TEST=7
  327. 3270  IF TEST<SIDE2LO THEN PLAYLO=X9:SIDE2LO=TEST
  328. 3280  IF TEST>SIDE2HI THEN PLAYHI=X9:SIDE2HI=TEST
  329. 3290  NEXT X9
  330. 3300  IF PLAYLO=-1 THEN 3370
  331. 3310  IF INTURN=BIDDER THEN FPLAY=PLAYLO:RETURN
  332. 3320  IF WHOSE=BIDDER THEN 3350
  333. 3330  IF SIDE2LO<OTHER THEN FPLAY=PLAYLO ELSE FPLAY=PLAYHI
  334. 3340  RETURN
  335. 3350  IF Y9=3 THEN FPLAY=PLAYHI ELSE FPLAY=PLAYLO
  336. 3360  RETURN
  337. 3370  HIGHC=-1
  338. 3380  FOR X9=0 TO 6
  339. 3390  IF TEMP(X9,0)=-1 THEN 3430 
  340. 3400  TEST=TEMP(X9,0)+TEMP(X9,1)
  341. 3410  IF TEMP(X9,0)=TEMP(X9,1) THEN TEST=TEST+5
  342. 3420  IF TEST>HIGHC THEN FPLAY=X9:HIGHC=TEST
  343. 3430  NEXT X9
  344. 3440  RETURN
  345. 3450  REM ********** This is the leading section **********
  346. 3460  IF TRUMP=8 THEN 4000
  347. 3470  CHKFLAG=0:TIMES=0
  348. 3480  CREAL=0:COTHER=0:PLAYLO=-1:PLAYHI=-1:SIDE2HI=-1:SIDE2LO=8
  349. 3490  FOR X9=0 TO 6
  350. 3500  IF TEMP(X9,0)=-1 THEN 3620
  351. 3510  IF TEMP(X9,0)<>TRUMP AND TEMP(X9,1)<>TRUMP THEN COTHER=COTHER+1:GOTO 3620
  352. 3520  CREAL=CREAL+1
  353. 3530  IF TEMP(X9,0)=TRUMP THEN TEST=TEMP(X9,1) ELSE TEST=TEMP(X9,0)
  354. 3540  IF TEST=TRUMP THEN TEST=7:GOTO 3600
  355. 3550  IF CHKFLAG=1 THEN 3600
  356. 3560  IF LEFTOUT(TRUMP,TRUMP)=1 THEN 3620
  357. 3570  FOR Y6=TEST+1 TO 6
  358. 3580  IF LEFTOUT(TRUMP,Y6)=1 THEN 3620
  359. 3590  NEXT Y6
  360. 3600  IF TEST>SIDE2HI THEN SIDE2HI=TEST:PLAYHI=X9
  361. 3610  IF TEST<SIDE2LO THEN SIDE2LO=TEST:PLAYLO=X9
  362. 3620  NEXT X9
  363. 3630  IF SEVEN=1 AND SIDE2HI<7 THEN 3710
  364. 3640  IF COTHER=0 AND SIDE2HI=-1 THEN CHKFLAG=1:GOTO 3490
  365. 3650  IF CHKFLAG=1 THEN 3690
  366. 3660  IF CREAL+GONE(TRUMP)>7 THEN 3710
  367. 3670  IF WHOSE=1 OR WHOSE=3 THEN PEOPLE=3 ELSE PEOPLE=2
  368. 3680  IF WHOHAS(PEOPLE,TRUMP)=0 AND WHOHAS(PEOPLE-2,TRUMP)=0 THEN 3710
  369. 3690  IF PLAYLO=-1 THEN 3710
  370. 3700  FPLAY=PLAYHI:RETURN
  371. 3710  REM *********** OFFLEADS ************
  372. 3720  TIMES=TIMES+1
  373. 3730  FINAL=100
  374. 3740  IF WHOSE=2 OR WHOSE=4 THEN PEOPLE=2 ELSE PEOPLE=3
  375. 3750  FOR X9=0 TO 6
  376. 3760  IF TEMP(X9,0)=-1 THEN 3950
  377. 3770  IF TIMES<2 AND (TEMP(X9,0)=TRUMP OR TEMP(X9,1)=TRUMP) THEN 3950
  378. 3780  IF TEMP(X9,0)=TEMP(X9,1) THEN FPLAY=X9:RETURN
  379. 3790  COUNTER=0
  380. 3800  IF LEFTOUT(TEMP(X9,1),TEMP(X9,1))=1 THEN COUNTER=COUNTER+1 ELSE 3820
  381. 3810  IF TEMP(X9,1)+TEMP(X9,1)=10 THEN COUNTER=COUNTER+20
  382. 3820  FOR Y6=TEMP(X9,0) TO 6
  383. 3830  IF LEFTOUT(Y6,TEMP(X9,1))=1 THEN COUNTER=COUNTER+1 ELSE 3860
  384. 3840  IF Y6+TEMP(X9,1)=5 THEN COUNTER=COUNTER+10
  385. 3850  IF Y6+TEMP(X9,1)=10 THEN COUNTER=COUNTER+20
  386. 3860  NEXT Y6
  387. 3870  REM IF WHOHAS(PEOPLE,TEMP(X9,1))=0 AND WHOHAS(PEOPLE-2,TEMP(X9,1))=0 THEN COUNTER=0:GOTO 4415
  388. 3880  FOR Y6=0 TO 6
  389. 3890  IF TEMP(Y6,0)=TEMP(X9,1) OR TEMP(Y6,1)=TEMP(X9,1) THEN COUNTER=COUNTER-1 ELSE 3920
  390. 3900  IF TEMP(Y6,0)+TEMP(Y6,1)=5 THEN COUNTER=COUNTER-5
  391. 3910  IF TEMP(Y6,0)+TEMP(Y6,1)=10 THEN COUNTER=COUNTER-10
  392. 3920  NEXT Y6
  393. 3930  IF COUNTER=0 THEN FPLAY=X9:RETURN
  394. 3940  IF COUNTER<FINAL THEN FPLAY=X9:FINAL=COUNTER
  395. 3950  NEXT X9
  396. 3960  IF FINAL<6 THEN RETURN
  397. 3970  IF TIMES>1 THEN 3990
  398. 3980  CHKFLAG=1:GOTO 3480
  399. 3990  RETURN
  400. 4000  REM ********* Play the lowest thing we've got **********
  401. 4010  HIGHC=100
  402. 4020  FOR X9=0 TO 6
  403. 4030  IF TEMP(X9,0)=-1 THEN 4100
  404. 4040  IF TEMP(X9,0)=TRUMP OR TEMP(X9,1)=TRUMP THEN 4100
  405. 4050  TEST=TEMP(X9,0)+TEMP(X9,1)
  406. 4060  IF TRUMP=8 THEN 4080
  407. 4070  IF TEST=5 OR TEST=10 THEN TEST=TEST*4
  408. 4080  IF TEMP(X9,0)=TEMP(X9,1) THEN TEST=TEST+10
  409. 4090  IF TEST<HIGHC THEN FPLAY=X9:HIGHC=TEST
  410. 4100  NEXT X9
  411. 4110  RETURN
  412. 4120  REM ********** The section where the play starts ************
  413. 4130  LOCATE 11,1:PRINT SPACE$(4);:LOCATE 12,1:PRINT SPACE$(4);
  414. 4140  LOCATE 1,18:PRINT SPACE$(4);:LOCATE 2,18:PRINT SPACE$(4);
  415. 4150  LOCATE 11,34:PRINT SPACE$(4);:LOCATE 12,34:PRINT SPACE$(4);
  416. 4160  LOCATE 21,18:PRINT SPACE$(20);
  417. 4170  IF BIDDER>1 THEN 4250
  418. 4180  LOCATE 21,14:INPUT "Trump suit";A$
  419. 4190  IF LEFT$(A$,1)="D" OR LEFT$(A$,1)="d" THEN TRUMP=7:GOTO 4230
  420. 4200  IF LEFT$(A$,1)="T" OR LEFT$(A$,1)="t" THEN TRUMP=8:GOTO 4230
  421. 4210  IF VAL(A$)<0 OR VAL(A$)>6 THEN BEEP:GOTO 4160
  422. 4220  TRUMP=VAL(A$)
  423. 4230  IF TRUMP=8 AND HIBID<42 THEN BEEP:GOTO 4160
  424. 4240  LOCATE 21,14:PRINT SPACE$(25);
  425. 4250  LOCATE 3,17:PRINT "Trump ";
  426. 4260  IF TRUMP=8 THEN PRINT "T" ELSE IF TRUMP=7 THEN PRINT "D" ELSE PRINT TRUMP
  427. 4270  LOCATE 5,17:PRINT "Bid ";HIBID
  428. 4280  GOTO 4310
  429. 4290  REM *********** BOOMER SOONER **************
  430. 4300  RETURN
  431. 4310  ROWLEVA=0:ROWLEVB=0:TSCOREA=0:TSCOREB=0
  432. 4320  REM ****** This sets up each hand for leads ********
  433. 4330  FOR XX=0 TO 6
  434. 4340  WHOHAS(0,XX)=1:WHOHAS(1,XX)=1:WHOHAS(2,XX)=1:WHOHAS(3,XX)=1:GONE(XX)=0
  435. 4350  FOR YY=0 TO 6
  436. 4360  LEFTOUT(XX,YY)=1
  437. 4370  NEXT YY
  438. 4380  NEXT XX
  439. 4390  FOR XX=0 TO 3:INPLAY(XX,0)=-1:INPLAY(XX,1)=-1:NEXT XX
  440. 4400  FOR SEVEN=1 TO 7
  441. 4410  ON WHOSE GOTO 4420,4660,4860,5060
  442. 4420  LOCATE 21,17:PRINT SPACE$(20);
  443. 4430  LOCATE 21,17:INPUT "Play ";A$
  444. 4440  IF A$<>"C" AND A$<>"c" THEN 4460
  445. 4450  IF SEVEN=1 THEN 4160
  446. 4460  IF VAL(A$)<1 OR VAL(A$)>7 THEN 4420
  447. 4470  IF A(VAL(A$)-1,0)=-1 THEN 4420
  448. 4480  LINE(45*(VAL(A$)-1),199)-STEP(40,-20),0,BF
  449. 4490  LINE(135,125)-STEP(40,-20),2,B
  450. 4500  LINE(155,125)-STEP(0,-20),2
  451. 4510  X=135:Y=125:L1=A(VAL(A$)-1,0):GOSUB 760
  452. 4520  X=155:L1=A(VAL(A$)-1,1):GOSUB 760
  453. 4530  IF A(VAL(A$)-1,0)=TRUMP OR A(VAL(A$)-1,1)=TRUMP THEN LEAD=TRUMP:GOTO 4560
  454. 4540  IF A(VAL(A$)-1,0)=A(VAL(A$)-1,1) AND TRUMP=7 THEN LEAD=TRUMP:GOTO 4560
  455. 4550  LEAD=A(VAL(A$)-1,1):OTHER=A(VAL(A$)-1,0):GOTO 4580
  456. 4560  IF LEAD=TRUMP AND A(VAL(A$)-1,0)=TRUMP THEN OTHER=A(VAL(A$)-1,1) ELSE OTHER = A(VAL(A$)-1,0)
  457. 4570  IF OTHER=LEAD THEN OTHER=7
  458. 4580  LEFTOUT(A(VAL(A$)-1,0),A(VAL(A$)-1,1))=0
  459. 4590  GONE(A(VAL(A$)-1,0))=GONE(A(VAL(A$)-1,0))+1
  460. 4600  GONE(A(VAL(A$)-1,1))=GONE(A(VAL(A$)-1,1))+1
  461. 4610  LEFTOUT(A(VAL(A$)-1,1),A(VAL(A$)-1,0))=0
  462. 4620  INPLAY(0,0)=A(VAL(A$)-1,0):INPLAY(0,1)=A(VAL(A$)-1,1)
  463. 4630  A(VAL(A$)-1,0)=-1:A(VAL(A$)-1,1)=-1
  464. 4640  GOSUB 5310
  465. 4650  GOTO 5260
  466. 4660  REM ********** player B *********
  467. 4670  FOR Z9=0 TO 6
  468. 4680  TEMP(Z9,0)=B(Z9,0):TEMP(Z9,1)=B(Z9,1)
  469. 4690  NEXT Z9
  470. 4700  GOSUB 3450
  471. 4710  IF TEMP(FPLAY,0)=TRUMP OR TEMP(FPLAY,1)=TRUMP THEN LEAD=TRUMP:GOTO 4740
  472. 4720  IF TEMP(FPLAY,0)=TEMP(FPLAY,1) AND TRUMP=7 THEN LEAD=TRUMP:GOTO 4740
  473. 4730  LEAD=TEMP(FPLAY,1):OTHER=TEMP(FPLAY,0):GOTO 4760
  474. 4740  IF LEAD=TRUMP AND TEMP(FPLAY,0)=TRUMP THEN OTHER=TEMP(FPLAY,1) ELSE OTHER = TEMP(FPLAY,0)
  475. 4750  IF OTHER=LEAD THEN OTHER=7
  476. 4760  LINE (76,100)-STEP(40,-20),2,B
  477. 4770  LINE (96,100)-STEP(0,-20),2
  478. 4780  X=76:Y=100:L1=B(FPLAY,0):GOSUB 760
  479. 4790  X=96:L1=B(FPLAY,1):GOSUB 760
  480. 4800  LEFTOUT(B(FPLAY,0),B(FPLAY,1))=0:LEFTOUT(B(FPLAY,1),B(FPLAY,0))=0
  481. 4810  GONE(B(FPLAY,0))=GONE(B(FPLAY,0))+1:GONE(B(FPLAY,1))=GONE(B(FPLAY,1))+1
  482. 4820  INPLAY(0,0)=B(FPLAY,0):INPLAY(0,1)=B(FPLAY,1)
  483. 4830  B(FPLAY,0)=-1:B(FPLAY,1)=-1
  484. 4840  GOSUB 5310
  485. 4850  GOTO 5260
  486. 4860  REM ********** player C *********
  487. 4870  FOR Z9=0 TO 6
  488. 4880  TEMP(Z9,0)=C(Z9,0):TEMP(Z9,1)=C(Z9,1)
  489. 4890  NEXT Z9
  490. 4900  GOSUB 3450
  491. 4910  IF TEMP(FPLAY,0)=TRUMP OR TEMP(FPLAY,1)=TRUMP THEN LEAD=TRUMP:GOTO 4940
  492. 4920  IF TEMP(FPLAY,0)=TEMP(FPLAY,1) AND TRUMP=7 THEN LEAD=TRUMP:GOTO 4940
  493. 4930  LEAD=TEMP(FPLAY,1):OTHER=TEMP(FPLAY,0):GOTO 4960
  494. 4940  IF LEAD=TRUMP AND TEMP(FPLAY,0)=TRUMP THEN OTHER=TEMP(FPLAY,1) ELSE OTHER = TEMP(FPLAY,0)
  495. 4950  IF OTHER=LEAD THEN OTHER=7
  496. 4960  LINE (135,75)-STEP(40,-20),2,B
  497. 4970  LINE (155,75)-STEP(0,-20),2
  498. 4980  X=135:Y=75:L1=C(FPLAY,0):GOSUB 760
  499. 4990  X=155:L1=C(FPLAY,1):GOSUB 760
  500. 5000  LEFTOUT(C(FPLAY,0),C(FPLAY,1))=0:LEFTOUT(C(FPLAY,1),C(FPLAY,0))=0
  501. 5010  GONE(C(FPLAY,0))=GONE(C(FPLAY,0))+1:GONE(C(FPLAY,1))=GONE(C(FPLAY,1))+1
  502. 5020  INPLAY(0,0)=C(FPLAY,0):INPLAY(0,1)=C(FPLAY,1)
  503. 5030  C(FPLAY,0)=-1:C(FPLAY,1)=-1
  504. 5040  GOSUB 5310
  505. 5050  GOTO 5260
  506. 5060  REM ********** player D *********
  507. 5070  FOR Z9=0 TO 6
  508. 5080  TEMP(Z9,0)=D(Z9,0):TEMP(Z9,1)=D(Z9,1)
  509. 5090  NEXT Z9
  510. 5100  GOSUB 3450
  511. 5110  IF TEMP(FPLAY,0)=TRUMP OR TEMP(FPLAY,1)=TRUMP THEN LEAD=TRUMP:GOTO 5140
  512. 5120  IF TEMP(FPLAY,0)=TEMP(FPLAY,1) AND TRUMP=7 THEN LEAD=TRUMP:GOTO 5140
  513. 5130  LEAD=TEMP(FPLAY,1):OTHER=TEMP(FPLAY,0):GOTO 5160
  514. 5140  IF LEAD=TRUMP AND TEMP(FPLAY,0)=TRUMP THEN OTHER=TEMP(FPLAY,1) ELSE OTHER = TEMP(FPLAY,0)
  515. 5150  IF OTHER=LEAD THEN OTHER=7
  516. 5160  LINE (190,100)-STEP(40,-20),2,B
  517. 5170  LINE (210,100)-STEP(0,-20),2
  518. 5180  X=190:Y=100:L1=D(FPLAY,0):GOSUB 760
  519. 5190  X=210:L1=D(FPLAY,1):GOSUB 760
  520. 5200  LEFTOUT(D(FPLAY,0),D(FPLAY,1))=0:LEFTOUT(D(FPLAY,1),D(FPLAY,0))=0
  521. 5210  GONE(D(FPLAY,0))=GONE(D(FPLAY,0))+1:GONE(D(FPLAY,1))=GONE(D(FPLAY,1))+1
  522. 5220  INPLAY(0,0)=D(FPLAY,0):INPLAY(0,1)=D(FPLAY,1)
  523. 5230  D(FPLAY,0)=-1:D(FPLAY,1)=-1
  524. 5240  GOSUB 5310
  525. 5250  GOTO 5260
  526. 5260  FOR XXY=1 TO 500:NEXT XXY
  527. 5270  LINE (74,51)-(232,129),0,BF
  528. 5280  IF TRUMP=8 AND WHOSE=BIDDER THEN 6810
  529. 5290  NEXT SEVEN
  530. 5300  GOTO 6810
  531. 5310  REM ************* This is the section for passive plays ************
  532. 5320  TRUMPIN=-1
  533. 5330  IF WHOSE=4 THEN INTURN=1 ELSE INTURN=WHOSE+1
  534. 5340  FOR Y9=1 TO 3
  535. 5350  ON INTURN GOSUB 5910,5400,5570,5740
  536. 5360  IF INTURN=4 THEN INTURN=1 ELSE INTURN=INTURN+1
  537. 5370  NEXT Y9
  538. 5380  GOSUB 6440
  539. 5390  RETURN
  540. 5400  REM ********** player B *********
  541. 5410  IF TRUMP=8 AND BIDDER=4 THEN RETURN
  542. 5420  LOOKFOR=2
  543. 5430  FOR Z9=0 TO 6
  544. 5440  TEMP(Z9,0)=B(Z9,0):TEMP(Z9,1)=B(Z9,1)
  545. 5450  NEXT Z9
  546. 5460  GOSUB 2420
  547. 5470  LINE (76,100)-STEP(40,-20),2,B
  548. 5480  LINE (96,100)-STEP(0,-20),2
  549. 5490  X=76:Y=100:L1=B(FPLAY,0):GOSUB 760
  550. 5500  X=96:L1=B(FPLAY,1):GOSUB 760
  551. 5510  GONE(B(FPLAY,0))=GONE(B(FPLAY,0))+1:GONE(B(FPLAY,1))=GONE(B(FPLAY,1))+1
  552. 5520  LEFTOUT(B(FPLAY,0),B(FPLAY,1))=0:LEFTOUT(B(FPLAY,1),B(FPLAY,0))=0
  553. 5530  GOSUB 6210
  554. 5540  INPLAY(Y9,0)=B(FPLAY,0):INPLAY(Y9,1)=B(FPLAY,1)
  555. 5550  B(FPLAY,0)=-1:B(FPLAY,1)=-1
  556. 5560  RETURN
  557. 5570  REM ********** player C *********
  558. 5580  IF TRUMP=8 AND BIDDER=1 THEN RETURN
  559. 5590  LOOKFOR=3
  560. 5600  FOR Z9=0 TO 6
  561. 5610  TEMP(Z9,0)=C(Z9,0):TEMP(Z9,1)=C(Z9,1)
  562. 5620  NEXT Z9
  563. 5630  GOSUB 2420
  564. 5640  LINE (135,75)-STEP(40,-20),2,B
  565. 5650  LINE (155,75)-STEP(0,-20),2
  566. 5660  X=135:Y=75:L1=C(FPLAY,0):GOSUB 760
  567. 5670  X=155:L1=C(FPLAY,1):GOSUB 760
  568. 5680  GONE(C(FPLAY,0))=GONE(C(FPLAY,0))+1:GONE(C(FPLAY,1))=GONE(C(FPLAY,1))+1
  569. 5690  LEFTOUT(C(FPLAY,0),C(FPLAY,1))=0:LEFTOUT(C(FPLAY,1),C(FPLAY,0))=0
  570. 5700  GOSUB 6210
  571. 5710  INPLAY(Y9,0)=C(FPLAY,0):INPLAY(Y9,1)=C(FPLAY,1)
  572. 5720  C(FPLAY,0)=-1:C(FPLAY,1)=-1
  573. 5730  RETURN
  574. 5740  REM ********** player D *********
  575. 5750  IF TRUMP=8 AND BIDDER=2 THEN RETURN
  576. 5760  LOOKFOR=4
  577. 5770  FOR Z9=0 TO 6
  578. 5780  TEMP(Z9,0)=D(Z9,0):TEMP(Z9,1)=D(Z9,1)
  579. 5790  NEXT Z9
  580. 5800  GOSUB 2420
  581. 5810  LINE (190,100)-STEP(40,-20),2,B
  582. 5820  LINE (210,100)-STEP(0,-20),2
  583. 5830  X=190:Y=100:L1=D(FPLAY,0):GOSUB 760
  584. 5840  X=210:L1=D(FPLAY,1):GOSUB 760
  585. 5850  GONE(D(FPLAY,0))=GONE(D(FPLAY,0))+1:GONE(D(FPLAY,1))=GONE(D(FPLAY,1))+1
  586. 5860  LEFTOUT(D(FPLAY,0),D(FPLAY,1))=0:LEFTOUT(D(FPLAY,1),D(FPLAY,0))=0
  587. 5870  GOSUB 6210
  588. 5880  INPLAY(Y9,0)=D(FPLAY,0):INPLAY(Y9,1)=D(FPLAY,1)
  589. 5890  D(FPLAY,0)=-1:D(FPLAY,1)=-1
  590. 5900  RETURN
  591. 5910  REM ******** Player A plays here ************
  592. 5920  IF TRUMP=8 AND BIDDER=3 THEN RETURN
  593. 5930  LOCATE 21,17:PRINT SPACE$(20);
  594. 5940  LOCATE 21,17:INPUT "Play ";A$
  595. 5950  IF VAL(A$)<1 OR VAL(A$)>7 THEN BEEP:GOTO 5930
  596. 5960  FPLAY=VAL(A$)-1
  597. 5970  IF A(FPLAY,0)=-1 THEN BEEP:GOTO 5930
  598. 5980  IF LEAD=TRUMP AND (A(FPLAY,0)=TRUMP OR A(FPLAY,1)=TRUMP) THEN 6090
  599. 5990  IF LEAD<>TRUMP AND (A(FPLAY,0)=TRUMP OR A(FPLAY,1)=TRUMP) THEN 6010
  600. 6000  IF A(FPLAY,0)=LEAD OR A(FPLAY,1)=LEAD THEN 6090
  601. 6010  FOR Z80=0 TO 6
  602. 6020  IF A(Z80,0)=-1 THEN 6080
  603. 6030  IF Z80=FPLAY THEN 6080
  604. 6040  IF LEAD=TRUMP AND (A(Z80,0)=LEAD OR A(Z80,1)=LEAD) THEN BEEP:GOTO 5930
  605. 6050  IF A(Z80,0)=A(Z80,1) AND A(Z80,0)=LEAD THEN BEEP:GOTO 5930
  606. 6060  IF A(Z80,1)=LEAD AND A(Z80,0)<>TRUMP THEN BEEP:GOTO 5930
  607. 6070  IF A(Z80,0)=LEAD AND A(Z80,1)<>TRUMP THEN BEEP:GOTO 5930
  608. 6080  NEXT Z80
  609. 6090  LINE(45*(FPLAY),199)-STEP(40,-20),0,BF
  610. 6100  LINE(135,125)-STEP(40,-20),2,B
  611. 6110  LINE(155,125)-STEP(0,-20),2
  612. 6120  X=135:Y=125:L1=A(FPLAY,0):GOSUB 760
  613. 6130  X=155:L1=A(FPLAY,1):GOSUB 760
  614. 6140  TEMP(FPLAY,0)=A(FPLAY,0):TEMP(FPLAY,1)=A(FPLAY,1)
  615. 6150  LEFTOUT(A(FPLAY,0),A(FPLAY,1))=0:LEFTOUT(A(FPLAY,1),A(FPLAY,0))=0
  616. 6160  GOSUB 6210
  617. 6170  GONE(A(FPLAY,0))=GONE(A(FPLAY,0))+1:GONE(A(FPLAY,1))=GONE(A(FPLAY,1))+1
  618. 6180  INPLAY(Y9,0)=A(FPLAY,0):INPLAY(Y9,1)=A(FPLAY,1)
  619. 6190  A(FPLAY,0)=-1:A(FPLAY,1)=-1
  620. 6200  RETURN
  621. 6210  REM ****** This determines if the play took the lead or not ******
  622. 6220  IF TEMP(FPLAY,0)=TRUMP OR TEMP(FPLAY,1)=TRUMP THEN 6270
  623. 6230  IF TRUMP=7 THEN 6380
  624. 6240  IF TRUMPIN>-1 THEN 6330
  625. 6250  IF TEMP(FPLAY,0)=LEAD OR TEMP(FPLAY,1)=LEAD THEN 6350
  626. 6260  GOTO 6330
  627. 6270  IF LEAD=TRUMP THEN 6350
  628. 6280  IF TEMP(FPLAY,0)=TRUMP THEN SIDE2=TEMP(FPLAY,1) ELSE SIDE2=TEMP(FPLAY,0)
  629. 6290  IF SIDE2=TRUMP THEN TRUMPIN=7:GOTO 6310
  630. 6300  IF SIDE2>TRUMPIN THEN TRUMPIN=SIDE2 ELSE 6330
  631. 6310  OTHER=SIDE2
  632. 6320  WHOSE=INTURN
  633. 6330  REM
  634. 6340  RETURN
  635. 6350  IF TEMP(FPLAY,0)=LEAD THEN SIDE2=TEMP(FPLAY,1) ELSE SIDE2=TEMP(FPLAY,0)
  636. 6360  IF OTHER=LEAD THEN 6330
  637. 6370  IF SIDE2>OTHER OR SIDE2=LEAD THEN 6310 ELSE 6330
  638. 6380  IF LEAD<>TRUMP THEN 6420
  639. 6390  IF TEMP(FPLAY,0)<>TEMP(FPLAY,1) THEN 6330
  640. 6400  IF TEMP(FPLAY,0)>OTHER THEN OTHER=TEMP(FPLAY,0):GOTO 6320
  641. 6410  GOTO 6330
  642. 6420  IF TEMP(FPLAY,0)=TEMP(FPLAY,1) AND TEMP(FPLAY,0)>TRUMPIN THEN 6430 ELSE 6240
  643. 6430  TRUMPIN=TEMP(FPLAY,0):OTHER=TRUMPIN:GOTO 6320
  644. 6440  REM ************ This section displays the resluts of the last round ***
  645. 6450  POINTS=1
  646. 6460  IF WHOSE=2 OR WHOSE=4 THEN COLUMN=240 ELSE COLUMN=0
  647. 6470  IF WHOSE=2 OR WHOSE=4 THEN ROWLEV=ROWLEVB ELSE ROWLEV=ROWLEVA
  648. 6480  OFFSET=0
  649. 6490  NN9=0
  650. 6500  FOR N9=0 TO 3
  651. 6510  IF INPLAY(N9,0)=-1 THEN 6610
  652. 6520  LINE (NN9*17+COLUMN,ROWLEV*20+12)-STEP(15,18),2,B
  653. 6530  LINE (NN9*17+COLUMN,ROWLEV*20+9+12)-STEP(15,0),2
  654. 6540  XYZZY=INPLAY(N9,0)+INPLAY(N9,1)
  655. 6550  IF XYZZY=5 OR XYZZY=10 THEN POINTS=POINTS+XYZZY
  656. 6560  SYMBOL=INPLAY(N9,0):X=NN9*17+COLUMN:Y=ROWLEV*20+12
  657. 6570  GOSUB 6690
  658. 6580  SYMBOL=INPLAY(N9,1):Y=Y+10
  659. 6590  GOSUB 6690
  660. 6600  NN9=NN9+1
  661. 6610  NEXT N9
  662. 6620  FOR N9=0 TO 3
  663. 6630  INPLAY(N9,0)=-1:INPLAY(N9,1)=-1
  664. 6640  NEXT N9
  665. 6650  IF WHOSE=2 OR WHOSE=4 THEN ROWLEVB=ROWLEVB+1 ELSE ROWLEVA=ROWLEVA+1
  666. 6660  IF WHOSE=2 OR WHOSE=4 THEN TSCOREB=TSCOREB+POINTS:GOTO 6680
  667. 6670  TSCOREA=TSCOREA+POINTS
  668. 6680  RETURN
  669. 6690  REM ********** Add little dots to the little dominoes **********
  670. 6700  ON SYMBOL GOTO 6720,6730,6750,6760,6780,6790
  671. 6710  RETURN
  672. 6720  PSET(X+7,Y+4),3:RETURN
  673. 6730  PSET(X+2,Y+2),3:PSET(X+13,Y+6),3
  674. 6740  RETURN
  675. 6750  GOSUB 6720:GOSUB 6730:RETURN
  676. 6760  PSET(X+13,Y+2),3:PSET(X+2,Y+6),3
  677. 6770  GOSUB 6730:RETURN
  678. 6780  GOSUB 6760:GOSUB 6720:RETURN
  679. 6790  PSET(X+2,Y+4),3:PSET(X+13,Y+4),3
  680. 6800  GOSUB 6760:RETURN
  681. 6810  REM ********** This section determines the score **********
  682. 6820  IF BIDDER=2 OR BIDDER=4 THEN 6880
  683. 6830  IF TRUMP<8 THEN 6860
  684. 6840  IF TSCOREA>0 THEN BSCORE=BSCORE+HIBID ELSE ASCORE=ASCORE+HIBID
  685. 6850  GOTO 6930
  686. 6860  IF TSCOREA=42 OR TSCOREA>=HIBID THEN ASCORE=ASCORE+TSCOREA+HIBID:GOTO 6930
  687. 6870  BSCORE=BSCORE+TSCOREB+HIBID:GOTO 6930
  688. 6880  IF TRUMP<8 THEN 6910
  689. 6890  IF TSCOREB>0 THEN ASCORE=ASCORE+HIBID ELSE BSCORE=BSCORE+HIBID
  690. 6900  GOTO 6930
  691. 6910  IF TSCOREB=42 OR TSCOREB>=HIBID THEN BSCORE=BSCORE+TSCOREB+HIBID:GOTO 6930
  692. 6920  ASCORE=ASCORE+TSCOREA+HIBID
  693. 6930  IF ASCORE>=300 THEN LOCATE 12,13:PRINT "We win the game";:GOTO 6960
  694. 6940  IF BSCORE>=300 THEN LOCATE 12,12:PRINT "They won the game";:GOTO 6960
  695. 6950  GOTO 430
  696. 6960  GOSUB 4290:LOCATE 13,14:PRINT "Another game?";
  697. 6970  GG9$=INKEY$:IF GG9$="" THEN 6970
  698. 6980  IF GG9$="n" OR GG9$="N" THEN SYSTEM ELSE 310
  699.